@echo off
setlocal

REM 设置项目名称和版本（根据实际项目修改）
set PROJECT_NAME=springboot-demo
set PROJECT_VERSION=1.0.0
set DOCKER_IMAGE=%PROJECT_NAME%:%PROJECT_VERSION%

echo ==========================================
echo 开始构建Spring Boot应用Docker镜像
echo 项目名称: %PROJECT_NAME%
echo 版本号: %PROJECT_VERSION%
echo 镜像名称: %DOCKER_IMAGE%
echo ==========================================

REM 步骤1: 构建Maven项目
echo [INFO] 正在执行Maven打包...
call mvn clean package -DskipTests
if %ERRORLEVEL% neq 0 (
    echo [ERROR] Maven打包失败!
    goto :END
)

REM 步骤2: 构建Docker镜像
echo [INFO] 正在构建Docker镜像...
docker build -t %DOCKER_IMAGE% .
if %ERRORLEVEL% neq 0 (
    echo [ERROR] Docker镜像构建失败!
    goto :END
)

REM 步骤3: 可选 - 推送镜像到Docker仓库
echo [INFO] 是否推送镜像到Docker仓库? (y/n)
set /p PUSH_CONFIRM=
if /i "%PUSH_CONFIRM%"=="y" (
    echo [INFO] 正在推送镜像到仓库...
    docker push %DOCKER_IMAGE%
    if %ERRORLEVEL% neq 0 (
        echo [ERROR] 镜像推送失败!
        goto :END
    )
)

echo [SUCCESS] 镜像构建成功: %DOCKER_IMAGE%
echo 可以使用以下命令运行容器:
echo docker run -p 8080:8080 %DOCKER_IMAGE%

:END
endlocal